Θέλει λίγη προσοχή αυτό το σημείο:
'Δημιουργία ένος νέου EventLog Αντικειμένου
Dim Log As EventLog = New EventLog()
Log.Source = mSource
Log.WriteEntry(Info, LogType)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Όταν κάνουμε rethrow ένα exception, τότε ή φτιάχνουμε ένα νέο exception object μέσα στο οποίο (στο InnerException του) βάζουμε το exception που έχουμε ή απλά κάνουμε Throw. Χωρίς να περάσουμε ως παράμετρο το ex object. Η διαφορά βρίσκεται στο ότι αν βάλουμε το ex τότε κάνουμε ένα νέο exception και χάνουμε το CallStack από το exception που πιάσαμε προηγουμένως. Τέλος, αν δεν πρόκειται να κάνουμε τίποτα με το exception όταν το πιάσουμε (πχ log το error κάπου) τότε δεν υπάρχει λόγος να κάνουμε Try/Catch αφού γλυτώνουμε το overhead απλά αφήνωντας το exception θα πάρει τον δρόμο προς τα πάνω...
Vir prudens non contra ventum mingit